namespace Maple.Branch.Settings
{
    using Configurations;
    using Providers;
    using Volo.Abp.Caching;
    using Volo.Abp.Domain;
    using Volo.Abp.Modularity;
    using Volo.Abp.Settings;

    [DependsOn(typeof(AbpDddDomainModule),
        typeof(AbpSettingsModule),
        typeof(AbpCachingModule),
        typeof(SettingsCommonModule))]
    public class SettingsDomainModule : AbpModule
    {
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            Configure<SettingOptions>(options =>
            {
                options.Providers.Add<DefaultValueSettingProvider>();
                options.Providers.Add<ConfigurationSettingProvider>();
                options.Providers.Add<GlobalSettingProvider>();
                options.Providers.Add<TenantSettingProvider>();
                options.Providers.Add<UserSettingProvider>();
            });
        }
    }
}
